1. Field of the Invention
The present invention relates generally to the field of telecommunications and, more specifically, to a universal applications program interface (API) for standardized interactive call control processing in a programmable telecommunication switch.
2. Description of the Related Art
Programmable telecommunication switches are used in a wide variety of applications such as voice messaging, telemarketing services and the like. A programmable switch is usually controlled by a host device, which is typically a computer that runs a telecommunications application program. A customer may either purchase a commercially available application program that is compatible with the host and switch hardware or may elect to write a custom program.
In most applications, a programmable switch is connected to a public telephone network by one or more analog trunks or digital spans (e.g., a T1 span) which are terminated at the switch. The switch may also terminate one or more "lines" which are connected to devices such as telephone sets. Communication over any given trunk, span or line is carried out in accordance with an assigned signalling protocol.
For various switching system applications, the sequence of switching events must be controlled and the switching functions must be performed in accordance with the requisite protocols. Throughout the world, there are numerous "standard" signalling protocols in use, including E&M wink start, loopstart, groundstart, international compelled R2 using MFR2 address signalling, and E1 Channel Associated Signalling (CAS) protocols using DTMF/MFR1 signalling. Typically, conventional programmable switches are configured such that a particular signalling protocol is associated with a particular trunk, span or line.
To control the telecommunications switch at the various levels necessary to satisfy specialized switching functions, conventional host applications have been configured to generate digital signal commands corresponding to a plurality of switching events. Correspondingly, conventional communications switches have been configured to generate digital signal responses related to the processing of these events at the ports. These messages are constant or "hard-coded" messages, each configured to communicate specific information between the host application and the switch. The interface between the telecommunications application and the switch through which these messages are transferred is referred to as an applications program interface, or API.
Each of the signalling protocols requires predetermined host-to-switch call control processing protocols to be established, each protocol including the exchange of one or more constant messages. Thus, to control the programmable switch to perform the requisite switching events necessary to maintain communications, communications switches must be capable of supporting extremely large numbers of these specific host-to-switch command messages and associated protocols. Accordingly, each signalling protocol has associated with it one or more different message sets stored and indexed at the host as well as at the switch. The message sets and resulting host-to-switch protocol are also dependent upon specific telecommunications applications requirements, such as the amount and type of information an application requires for it to appropriately control the switch to support a particular signalling protocol.
Furthermore, conventional programmable switches may be connected between the public telephone network and other devices such as a voice messaging system. Because such devices may perform specialized functions and are not intended to connect directly to the public telephone network, they do not typically adhere to standard signalling protocols. Thus, for a user to be able to control the programmable switch in such a fashion that proper communication is maintained both, with the public telephone network and with other devices connected to the switch, complex and varied signalling protocol requirements must be satisfied. Conventional communications switches implement numerous specific sets of API messages to support these varied requirements.
As a result of the implementation of constant messages and the various telecommunications applications and signalling protocol requirements, there has been no standardization of the interface between the host applications and the telecommunications switch. This has led to increased cost in developing the necessary hardware and software to support specific protocols to satisfy host applications requirements as well as signalling protocol requirements for each trunk, span, and line.
Furthermore, as a result of having separate and distinct API messages, each dedicated to a specific command or data transfer, the addition of features to the telecommunications switch necessitates the creation and implementation of one or more additional API messages to support the associated signalling protocol. To implement each new unique message, a costly and time-consuming software change to the switch and host must be made.
What is needed, therefore, is a universal API that provides standardized call control processing by utilizing one or more generic message formats and supporting host-to-switch call control processing that may be used regardless of the host application or signaling protocol requirements. Furthermore, the generic message formats must be sufficiently flexible and versatile to be customized to support present and future requirements of telecommunications applications and signaling protocols now or later developed.